package controller;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5 {
	// digester declareren
    private static MessageDigest digester;

    static {
        try {
        	// aangeven welke versleuteling er gebruikt moet worden
            digester = MessageDigest.getInstance("MD5");
        }
        catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }

    public String crypt(String str) {
    	// controleren of de String leeg is
        if (str == null || str.length() == 0) {
        	// foutmelding bij een lege String
            throw new IllegalArgumentException("String to encrypt cannot be null or zero length");
        }

        digester.update(str.getBytes());
        // inhoud omzetten naar het type byte
        byte[] hash = digester.digest();
        StringBuffer hexString = new StringBuffer();
        // elke byte versleutelen
        for (int i = 0; i < hash.length; i++) {
            if ((0xff & hash[i]) < 0x10) {
                hexString.append("0" + Integer.toHexString((0xFF & hash[i])));
            }
            else {
                hexString.append(Integer.toHexString(0xFF & hash[i]));
            }
        }
        // resultaat returnen
        return hexString.toString();
    }
}
